Conversation
Phase 2 prep: CLI consumes the shared port-and-adapter pipeline from fairscape_interpret/. pydantic-ai and httpx were transitively available already but are now declared explicitly since the CLI will import them directly through the pipeline adapters.
Indexes primary + reference RO-Crates via ReadROCrateMetadata into a single id-keyed map and serves the three GraphSource port methods against it. BFS in build_full_graph follows any reference that resolves in the merged index, not just ark:-prefixed ones, because local crates may use bare @ids. crate_dir_for is a CLI-local affordance (not on the port) so the SoftwareFetcher can resolve contentUrl paths against the owning crate.
persist_aeg always writes the serialized AnnotatedEvidenceGraph to output_path. persist_condensed writes the condensed crate only when --save-condensed was supplied; otherwise it keeps the metadata in memory for diagnostics (last_condensed_metadata / last_stats) and returns the condensed id without touching disk. Source RO-Crate is never modified -- no AppendCrate calls, no back-pointer injection.
Mirrors the server's asyncCollection task-document shape in process memory, emits concise progress lines to stdout on step transitions and per-computation completion, and appends raw LLM responses to a JSONL trace file when --debug-llm is set. Tracker calls never raise: observability is a best-effort side channel, never the reason a pipeline fails.
Resolution order: (1) contentUrl as a file:///<crate-relative-path> URI resolved against the owning crate directory, (2) GitHub via the shared prefetch_software_code helper when the URL is an actual HTTP URL, (3) a "[source not fetched]" placeholder so annotation continues rather than the run dying on a missing source file. file:/// URIs are the canonical shape FAIRSCAPE crates use for local artifacts -- the path after the third slash is crate-relative, not filesystem-absolute. A bare relative path is also accepted. prefetch_software_code already returns bracketed placeholders for non-GitHub or unfetchable URLs; we detect and drop those in favor of the CLI's own placeholder so the signal stays uniform.
Wires the four local adapters into Condenser + Interpreter and runs the pipeline against a user-supplied RO-Crate path. --reference is repeatable and merges additional crates into the graph index for cross-crate ARK resolution. Default output is ./<rocrate-name>-interpretation.json; --save-condensed and --debug-llm opt into the condensed-crate sidecar and the JSONL LLM trace.
Adds the interpret_group from fairscape_cli.interpret.command alongside the other top-level groups (rocrate, import, build, publish, schema, augment, track). Users can now run `fairscape interpret run <path>`.
pyproject dep + uv.sources path and all import sites under commands/ and interpret/ updated to the renamed package. Behavior unchanged. See fairscape_graph_tools/EVIDENCE_GRAPH_MIGRATION.md for the coordinated rename across mds_python, fairscape-cli, and the shared package.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
New fairscape interpret command
Added fairscape_graph_tools as dep. Handles evidence graph and some interpretation code.
Added fairscape import manifest command. Builds an RO-Crate from a CSV manifest (name, description, contentUrl,
hashes, size, version, keywords, group, etc.) via a new manifest_connector.
Evidence graph HTML rewritten. Moved from a 1,000-line Python f-string to a Jinja template.
Datasheet visual redesign.
v2 AI-ready scoring.
Summary statistics. New entailments/summary_stats.py for server-like summary stats.
PhysioNet importer fixes and dataset-group support.
Tests